package com.com.itheima03;

public class Demo3 implements Runnable {

    @Override
    public void run() {
        //staticMethod();
        method();
    }

    //不能使用this，锁的对像是当前类字节码对象
    public static synchronized void staticMethod() {
        int tickets = 100; //共享数据
        while (true) {
            if (tickets <= 0) {
                break;
            }
            try {
                Thread.sleep(200); //窗口1在此睡眠  窗口2在此睡眠
                //窗口1睡眠时间到，往下执行
                //轮到窗口2睡眠时间到，往下执行
                String name = Thread.currentThread().getName();
                //窗口1正在卖第100张票，还剩0张
                //窗口2正在卖第101张票，还剩-1张
                System.out.println(name + "正在卖第" + (100 - tickets + 1) + "张票 ,还剩" + --tickets + "张票");
            } catch (InterruptedException e) {
                e.printStackTrace();
            }
        }
    }

    public synchronized void method() {
        int tickets = 100; //共享数据
        while (true) {
            if (tickets <= 0) {
                break;
            }
            try {
                Thread.sleep(200); //窗口1在此睡眠  窗口2在此睡眠
                //窗口1睡眠时间到，往下执行
                //轮到窗口2睡眠时间到，往下执行
                String name = Thread.currentThread().getName();
                //窗口1正在卖第100张票，还剩0张
                //窗口2正在卖第101张票，还剩-1张
                System.out.println(name + "正在卖第" + (100 - tickets + 1) + "张票 ,还剩" + --tickets + "张票");
            } catch (InterruptedException e) {
                e.printStackTrace();
            }
        }
    }
}
